import type React from 'react';
import type { StandardProps } from '../../types/common';

type Size = 'small' | 'middle' | 'large' | number;

type SpaceSize = Size | [Size, Size];

export interface SpaceProps extends StandardProps {
  children?: React.ReactNode;
  /**
   * 设置容器元素的 display 属性
   * @default inline-flex
   */
  display?: 'inline-flex' | 'flex';

  /**
   * 间距方向 (主轴方向)
   * @default horizontal
   */
  direction?: 'horizontal' | 'vertical';

  /**
   * 间距大小；如果传入元组，那么第一个值是行间距，第二个值是列间距
   * @default small
   */
  size?: SpaceSize;

  /**
   * 对齐方式 (主轴上的对齐方式); 仅在 display 为 flex 时有效
   * @default start
   */
  justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly';

  /**
   * 对齐方式 (交叉轴上的对齐方式)
   * @default center
   */
  align?: 'start' | 'end' | 'center' | 'baseline' | 'normal';

  /**
   * 是否自动换行，仅在 horizontal 时有效
   * @default false
   */
  wrap?: boolean;
}
